/*
>> Mapping evaluation in the light of dependent operations
*/

#ifndef __EVALDEPS_H_INCLUDED
#define __EVALDEPS_H_INCLUDED

#ifdef __cplusplus
extern "C" {
#endif

#define MAX_VERTICES   65536
#define MAX_EDGES      65536
#define MAX_LINKS      256
#define MAX_PROCESSORS 256

typedef struct vertex_s
{
  int id, edges, delay, label, processor;
  double work, energy;
  struct edge_s *edge[MAX_LINKS];
} vertex_t;

typedef struct edge_s
{
  int id, bulk;
  struct vertex_s *start, *end;
} edge_t;

typedef struct pload_s
{
  int id;
  float load;
} pload_t;

double scEvlMappingDeps(double iop);

#ifdef __cplusplus
}
#endif

#endif /* __EVALDEPS_H_INCLUDED */
